﻿using System;
using Iesi.Collections.Generic;
using System.Text;
using System.Collections.Generic;

namespace CRC.Inspecciones.Dominio.Clases
{
    public class ElementoImpreso
    {
        public ElementoImpreso() { }

        private Int32 _id;
        public virtual Int32 Id
        {
            get { return _id; }
            set { _id = value; }
        }

        private Int32? _padreId = null;

        public virtual Int32? PadreId
        {
            get { return _padreId; }
            set { _padreId = value; }
        }

        private TipoImpreso _tImpreso;
        public virtual TipoImpreso TImpreso
        {
            get { return _tImpreso; }
            set { _tImpreso = value; }
        }

        private TipoElementoImpreso _tipo;
        public virtual TipoElementoImpreso Tipo
        {
            get { return _tipo; }
            set { _tipo = value; }
        }

        private String _texto = String.Empty;
        public virtual string Texto
        {
            get { return _texto; }
            set { _texto = value; }
        }

        private DateTime? _fechaBaja = null;
        public virtual DateTime? FechaBaja
        {
            get { return _fechaBaja; }
            set { _fechaBaja = value; }
        }

        private Int32 _orden;
        public virtual Int32 Orden
        {
            get { return _orden; }
            set { _orden = value; }
        }


        private Boolean _admiteComentario;
        public virtual Boolean AdmiteComentario
        {
            get { return _admiteComentario; }
            set { _admiteComentario = value; }
        }

        private ISet<ElementoImpreso> _subElementos = new HashedSet<ElementoImpreso>();
        public virtual ISet<ElementoImpreso> SubElementos
        {
            get { return _subElementos; }
            set { _subElementos = value; }
        }

        public virtual List<Object[]> ObtenerSubElementos() {
            CRC.Inspecciones.Dominio.Controlador.CtrlImpreso c = new CRC.Inspecciones.Dominio.Controlador.CtrlImpreso();
            return c.obtenerSubElementos(this);
        }

        private string _version = string.Empty;
        public virtual string Version
        {
            get { return _version; }
            set { _version = value; }
        }
    }
}
